<?php
class UsersController extends AppController {

	var $name = 'Users';
	var $helpers = array('Html', 'Form', 'Session');
	var $paginate = array('limit' => 10, 'page' => 1, 'order' =>array('User.username'=>'asc'));
	
	
	function login() {
		$user = $this->User->find('first', array('conditions'=>array('USERNAME'=>$this->data['User']['USERNAME'])));
	}
	
	function logout() {
		$this->Session->destroy('curUser'); 
        $this->Session->setFlash('Bạn đã thoát ra thành công.'); 
        $this->redirect(array('controller'=>'users','action'=>'login')); 
	}

	function beforeFilter() {
		parent::beforeFilter();
		$this->Auth->fields = array('username' => 'username', 'password' => 'password');

		if($this->Auth->user('ROLE')!= 'admin' && in_array($this->params['action'], array('index', 'delete'))){
			$this->Session->setFlash('Bạn phải đăng nhập bằng quyền ADMIN để sử dụng chức năng này');
			$this->redirect(array('controller'=>'pages','action'=>'home'));
		}
	}	

	function index(){
		$this->User->recursive = 1;
		$this->set('users', $this->paginate('User'));
	}
	
	function add(){
		if (!empty($this->data)) {
			$this->User->create();
			$this->data['User']['PASSWORD'] = md5($this->data['User']['PASSWORD']);
			if ($this->User->save($this->data)) {				
				$this->Session->setFlash('Tài khoản mới đã được tạo');
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash('Không thể tạo tài khoản mới, vui lòng thử lại');
			}
		}
		$canbos = $this->User->Canbo->find('list', array('fields'=>array('id','hoten')));
		$this->set(compact('canbos'));
	}
	
	function view($id = null){
		if (!$id) {
			$this->Session->setFlash('Thao tác không được hỗ trợ');
			$this->redirect(array('action'=>'index'), null, true);
		} else {
			$curUser = $this->Auth->user();
			/* Chi nguoi dung admin duoc phep xem thong tin cua cac user khac */
			if($curUser['User']['ROLE'] == 'admin'){
				$user = $this->User->find(array('User.id'=>$id));
				$this->set('user', $user);
			}else{
				$this->User->recursive = 1;
				//$this->set('user',$curUser);
				$this->set('user', $this->User->find('first',array('conditions'=>array('User.id'=>$curUser['User']['id']))));
			}
		}
	}
	
	function delete($id = null){
		if (!$id) {
			$this->Session->setFlash('Thao tác không được hỗ trợ');			
		} else {
			$curUser = $this->Auth->user();
			/* Chi nguoi dung admin duoc phep xem thong tin cua cac user khac */
			if($curUser['User']['ROLE'] == 'admin'){
				if($this->User->del($id)){
					$this->Session->setFlash('Xóa người dùng thành công');
				}else
					$this->Session->setFlash('Lỗi! Không thực hiện xóa được');				
			}
		}
		
		$this->redirect(array('action'=>'index'), null, true);
	}
	
	function edit($id=null){
		if (!$id && empty($this->data)) {
			$this->Session->setFlash('Thao tác không được hỗ trợ');
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			$this->data['User']['PASSWORD'] = md5($this->data['User']['PASSWORD']);
			if ($this->User->save($this->data)) {
				$this->Session->setFlash('Thông tin Tài Khoản đã được sửa');
				if($this->Auth->user('ROLE') == 'admin')
					$this->redirect(array('action'=>'index'));
				else
					$this->redirect(array('action'=>'view', 'id'=>$this->Auth->user('id')));
			} else {
				$this->Session->setFlash('Thông tin Tài Khoản chưa được lưu. Bạn vui lòng thử lại');
			}
		}
		if (empty($this->data)) {
			if($this->Auth->user('ROLE') == 'admin'){
				$this->data = $this->User->read(null, $id);
				$canbos = $this->User->Canbo->find('list', array('fields'=>array('id','hoten')));
				$this->set(compact('canbos'));
			}else
				$this->data = $this->User->read(null, $this->Auth->user('id'));
		}
	}
}
?>